package cn.lg.soar.system.auth.service;

import cn.lg.soar.database.base.service.INumberTreeService;
import cn.lg.soar.system.auth.entity.Role;
import cn.lg.soar.system.auth.model.RoleDto;

import java.util.Collection;
import java.util.List;

/**
 * @author luguoxiang
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface IRoleService extends INumberTreeService<Long, Role> {

    /**
     * 根据code获取角色
     * @param codes
     * @return
     */
    List<Role> listByCodes(Collection<String> codes);

    /**
     * 根据角色id获取角色编码
     * @param roleIds
     * @return
     */
    List<String> codesByIds(List<Long> roleIds);

    /**
     * 创建
     * @param data
     * @return
     */
    Long create(RoleDto data);

    /**
     * 清空缓存
     */
    void clearCache();

    /**
     * 获取相关角色id（继承的）
     * @param roleId
     * @return
     */
    List<Long> getRelevantIds(Long roleId);

}
